cmake_minimum_required(VERSION 3.31)
project(chatting_software2_0)

set(CMAKE_CXX_STANDARD 11)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0")

# 对于 MinGW，需要显式链接 mswsock
if(MINGW)
    set(EXTRA_LIBS ws2_32 mswsock)
else()
    set(EXTRA_LIBS ws2_32)
endif()

#[[使用套接字库]]
link_libraries(ws2_32)

add_executable(chatting_software2_0 main.cpp
        config/interface/ConfigInterface.hpp
        execution/interface/ExecutionInterface.hpp
        execution/interface/ClientExecutionInterface.hpp
        execution/interface/ServerExecutionInterface.hpp
        config/interface/ClientConfigInterface.hpp
        config/interface/ServerConfigInterface.hpp
        tool/ClassReflectionTool.hpp
        config/TestConfig.hpp
        execution/client/ClientMainExecution.hpp
        execution/client/ClientThreadExecution.hpp
        tool/ThreadPoolTool.hpp
        execution/client/ClientConfigExecution.hpp
        config/client/ClientThreadExecutionConfig.hpp
        config/client/ClientThreadExecutionConfig.hpp
        type/ClientType.hpp
        type/ServerType.hpp
        execution/client/ClientMessageExecution.hpp
        message/interface/MessageInterface.hpp
        message/interface/MessageInterface.hpp
        message/interface/ClientMessageInterface.hpp
        message/client/RegisterClientMessage.hpp
        message/client/RegisterClientMessage.hpp
        tool/SnowflakeIdTool.hpp
        message/client/ApplicationSerialNumberMessage.hpp
        message/client/ReceiveSerialNumberMessage.hpp
        execution/client/ClientIOCPExecution.hpp
        config/client/ClientIOCPConfig.hpp
        type/CommonType.hpp
        data/CommonData.hpp
        tool/NetworkIOTool.hpp
        tool/MessagePoolsTool.hpp
        message/client/TestMessage.hpp
        tool/MessageProcessorTool.hpp
        tool/MessageSynthesisTool.hpp
        tool/MessageSynthesisTool1.hpp

)
